package com.service.scheduling.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.service.dao.model.Member;
import com.service.dao.po.MemberCache;

import java.util.List;

/**
 * <dl>
 * <dt>back-end</dt>
 * <dd>Description:</dd>
 * <dd>Copyright: Copyright (C) 2015</dd>
 * <dd>Company: </dd>
 * <dd>CreateDate: 2019年09月19日</dd>
 * </dl>
 *
 * @author
 */
public interface MemberService extends IService<Member> {

    List<Member> listAll();

    List<Integer> listAllMemberIdsByStatus(Integer userStatus);

    List<Member> listStarMember();

    List<Member> listByPid(Integer pId);

    List<Member> listMaxGradeMember();

    List<Member> listByPathLike(Integer memberId);

    List<Integer> getMemberPathList(String memberPath);

    List<Member> getMemberByPath(String memberPath);

    List<Member> listByVipGrade(Integer vipGrade);

    List<Member> listByGradeList(List<Integer> vipGradeList);

    List<Member> listByPathLikeAndVipGrade(Integer memberId, Integer vipGrade);

    List<Member> selectByPathAndStatus(Integer memberId);

    Integer countMemberByPidAndStarGrade(Integer memberId, List<Integer> grade);

    void checkAndUpdateMemberStarGrade(MemberCache memberCache);

    void updateMemberStarGrade(Integer memberId, Integer grade);
    /**
     * @Description: 获取用户等级处理列表中的用户集合
     * @Author: ty
     * @Date: 2021/5/6 16:12
     * @param: [grades]
     * @return: java.util.List<java.lang.Integer>
     **/
    List<Member> getMemberIdsByGradeList(List<Integer> gradeList);
}
